package com.ruoyi.web.service.warning;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.web.domain.warning.WarningFactorRecord;
import com.ruoyi.web.pojo.request.warning.WarningFactorRecordRequest;
import com.ruoyi.web.pojo.request.warning.WarningRecordCountByDayRequest;
import com.ruoyi.web.pojo.vo.warning.WarningRecordCountByDayVO;
import com.ruoyi.web.pojo.vo.warning.WarningRecordCountVO;

import java.util.List;

/**
 * 预警记录 服务类
 * @author fwx
 * @date 2024-01-30 15:08:07
 */
public interface WarningFactorRecordService extends IService<WarningFactorRecord> {
    /**
    * 新增预警记录
    * @author fwx
    * @date 2024-1-30 15:08:07
    */
    public void insert(WarningFactorRecord WarningRecord);

    /**
     * @desc  批量新增预警记录
     * @author fwx 2024/2/20 15:34
     **/
    public void insertList(List<WarningFactorRecord> records);

    /**
    * 修改预警记录
    * @author fwx
    * @date 2024-1-30 15:08:07
    */
    public void update(WarningFactorRecord WarningRecord);

    /**
    * 删除预警记录
    * @author fwx
    * @date 2024-1-30 15:08:07
    */
    public void delete(String id);

    /**
    * 分页查询预警记录
    * @author fwx
    * @date 2024-1-30 15:08:07
    */
    public void queryPage(IPage<WarningFactorRecord> page);

    /**
     * @desc  统计数量
     * @author fwx 2024/2/18 14:51
     **/
    public Long countByDay(String start, String end);

    /**
     * @desc  分页查询预警记录
     * @author fwx 2024/2/5 16:02
     **/
     public List<WarningFactorRecord>  queryPage(WarningFactorRecordRequest request);

    /**
     * @desc  查询设备各个因子的最新的记录
     * @author fwx 2024/4/22 13:55
     **/
    public List<WarningFactorRecord>  getLastRecord(WarningFactorRecordRequest request);

    /**
      * @desc  得到每个预警
      * @author fwx 2024/2/21 15:43
      **/
     public List<WarningFactorRecord>  getNewList();

    /**
     * @desc  得到传感器预警记录的统计
     * @author fwx 2024/2/18 14:15
     **/
    public WarningRecordCountVO getFactorRecordCount();

    /**
     * @desc  获取传感器预警记录一段时间内每一天的预警统计
     * @author fwx 2024/2/18 14:28
     **/
    public List<WarningRecordCountByDayVO> getFactorRecordCountByDay(WarningRecordCountByDayRequest request);

    /**
     * @desc  得到一段时间的预警记录
     * @author fwx 2024/2/18 15:22
     **/
    public List<WarningFactorRecord> getListByDay(String start, String end);

    /**
    * 查询所有预警记录
    * @author fwx
    * @date 2024-1-30 15:08:07
    */
    public List<WarningFactorRecord> queryAll();

    /**
    * 根据id查询预警记录
    * @author fwx
    * @date 2024-1-30 15:08:07
    */
    public WarningFactorRecord findById(String id);

}
